package com.study.kt._01grammar._01basic

fun main(args: Array<String>) {
    // null本身不能赋值给一个不为空的类型 val s:String = null编译错误
    //String?为可空类型
    val s: String? = null
    //s调用方法时会报错 s.toInt()
    //?.空安全调用符，如果s不为空则执行，如果为空返回null不执行
    s?.toInt()
    //!!非空断言，告诉编译器当前s一定不为空，如果为空则报错,一般不适用
    //s!!.toInt()

    //?:Elvis操作符 Int?为可空类型与Int不同
    //s?.toInt() 用Int接收类型不匹配所以编译错误
    val a: Int = s?.toInt() ?: -1//如果不为空返回方法值，如果为空返回-1
    println(a)
}